#include <bits/stdc++.h>
using namespace std;

class Solution
{
public:
    int main()
    {
        int n, x;
        cin >> n >> x;
        int mask = 1;
        int count = 0;
        while (mask <= n)
        {
            // 若 mask = 10^i, 则 bit 提取出了 n 的第 i+1 位数
            int bit = n / mask % 10;

            // 考虑 1 到 n 范围内，第 i+1 位出现x的次数，即第 i+1 位为 x 时，其余位的组合情况种数
            // 为此，以这一位为界，提取出 n 的这一位左边、右边的数字
            int left = n / mask / 10;
            int right = n % mask;

            if (x != 0)
            {
                if (bit < x)
                {
                    // 这时，要使第 i+1 位为 x ，左边的数字可取 [0, left - 1], 右边的 i 位数字各自可取 [0, 9]
                    // 共有 left * 10^i 即 left * mask 种不同情况
                    count += left * mask;
                }
                else if (bit == x)
                {
                    // 这时，左边的数字可取 [0, left]
                    // 当左边为 [0, left - 1]时, 右边的 i 位数字各自可取 [0, 9]
                    // 当左边为 left 时, 右边的数只能是 [0, right]
                    count += left * mask + right + 1;
                }
                else // bit > x
                {
                    // 这时，左边的数字可取 [0, left], 右边的 i 位数字各自可取 [0, 9]
                    count += (left + 1) * mask;
                }
            }
            else
            {
                // x == 0 时，左边只能取 [1, left], 其余情况与之前类似
                if (bit == 0)
                {
                    count += (left - 1) * mask + right + 1;
                }
                else
                {
                    count += left * mask;
                }
            }
            mask *= 10;
        }
        cout << count;
        return 0;
    }
};

#ifndef __LOCAL_TEST__
int main()
{
    return Solution().main();
}
#endif